package com.zcxy360.sandtable.domain;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class VproblemExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public VproblemExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andVproblemIdIsNull() {
            addCriterion("vproblem.vproblem_id is null");
            return (Criteria) this;
        }

        public Criteria andVproblemIdIsNotNull() {
            addCriterion("vproblem.vproblem_id is not null");
            return (Criteria) this;
        }

        public Criteria andVproblemIdEqualTo(Integer value) {
            addCriterion("vproblem.vproblem_id =", value, "vproblemId");
            return (Criteria) this;
        }

        public Criteria andVproblemIdNotEqualTo(Integer value) {
            addCriterion("vproblem.vproblem_id <>", value, "vproblemId");
            return (Criteria) this;
        }

        public Criteria andVproblemIdGreaterThan(Integer value) {
            addCriterion("vproblem.vproblem_id >", value, "vproblemId");
            return (Criteria) this;
        }

        public Criteria andVproblemIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("vproblem.vproblem_id >=", value, "vproblemId");
            return (Criteria) this;
        }

        public Criteria andVproblemIdLessThan(Integer value) {
            addCriterion("vproblem.vproblem_id <", value, "vproblemId");
            return (Criteria) this;
        }

        public Criteria andVproblemIdLessThanOrEqualTo(Integer value) {
            addCriterion("vproblem.vproblem_id <=", value, "vproblemId");
            return (Criteria) this;
        }

        public Criteria andVproblemIdIn(List<Integer> values) {
            addCriterion("vproblem.vproblem_id in", values, "vproblemId");
            return (Criteria) this;
        }

        public Criteria andVproblemIdNotIn(List<Integer> values) {
            addCriterion("vproblem.vproblem_id not in", values, "vproblemId");
            return (Criteria) this;
        }

        public Criteria andVproblemIdBetween(Integer value1, Integer value2) {
            addCriterion("vproblem.vproblem_id between", value1, value2, "vproblemId");
            return (Criteria) this;
        }

        public Criteria andVproblemIdNotBetween(Integer value1, Integer value2) {
            addCriterion("vproblem.vproblem_id not between", value1, value2, "vproblemId");
            return (Criteria) this;
        }

        public Criteria andProblemIdIsNull() {
            addCriterion("vproblem.problem_id is null");
            return (Criteria) this;
        }

        public Criteria andProblemIdIsNotNull() {
            addCriterion("vproblem.problem_id is not null");
            return (Criteria) this;
        }

        public Criteria andProblemIdEqualTo(Integer value) {
            addCriterion("vproblem.problem_id =", value, "problemId");
            return (Criteria) this;
        }

        public Criteria andProblemIdNotEqualTo(Integer value) {
            addCriterion("vproblem.problem_id <>", value, "problemId");
            return (Criteria) this;
        }

        public Criteria andProblemIdGreaterThan(Integer value) {
            addCriterion("vproblem.problem_id >", value, "problemId");
            return (Criteria) this;
        }

        public Criteria andProblemIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("vproblem.problem_id >=", value, "problemId");
            return (Criteria) this;
        }

        public Criteria andProblemIdLessThan(Integer value) {
            addCriterion("vproblem.problem_id <", value, "problemId");
            return (Criteria) this;
        }

        public Criteria andProblemIdLessThanOrEqualTo(Integer value) {
            addCriterion("vproblem.problem_id <=", value, "problemId");
            return (Criteria) this;
        }

        public Criteria andProblemIdIn(List<Integer> values) {
            addCriterion("vproblem.problem_id in", values, "problemId");
            return (Criteria) this;
        }

        public Criteria andProblemIdNotIn(List<Integer> values) {
            addCriterion("vproblem.problem_id not in", values, "problemId");
            return (Criteria) this;
        }

        public Criteria andProblemIdBetween(Integer value1, Integer value2) {
            addCriterion("vproblem.problem_id between", value1, value2, "problemId");
            return (Criteria) this;
        }

        public Criteria andProblemIdNotBetween(Integer value1, Integer value2) {
            addCriterion("vproblem.problem_id not between", value1, value2, "problemId");
            return (Criteria) this;
        }

        public Criteria andUserIdIsNull() {
            addCriterion("vproblem.user_id is null");
            return (Criteria) this;
        }

        public Criteria andUserIdIsNotNull() {
            addCriterion("vproblem.user_id is not null");
            return (Criteria) this;
        }

        public Criteria andUserIdEqualTo(Integer value) {
            addCriterion("vproblem.user_id =", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdNotEqualTo(Integer value) {
            addCriterion("vproblem.user_id <>", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdGreaterThan(Integer value) {
            addCriterion("vproblem.user_id >", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("vproblem.user_id >=", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdLessThan(Integer value) {
            addCriterion("vproblem.user_id <", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdLessThanOrEqualTo(Integer value) {
            addCriterion("vproblem.user_id <=", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdIn(List<Integer> values) {
            addCriterion("vproblem.user_id in", values, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdNotIn(List<Integer> values) {
            addCriterion("vproblem.user_id not in", values, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdBetween(Integer value1, Integer value2) {
            addCriterion("vproblem.user_id between", value1, value2, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdNotBetween(Integer value1, Integer value2) {
            addCriterion("vproblem.user_id not between", value1, value2, "userId");
            return (Criteria) this;
        }

        public Criteria andOrgIdIsNull() {
            addCriterion("vproblem.org_id is null");
            return (Criteria) this;
        }

        public Criteria andOrgIdIsNotNull() {
            addCriterion("vproblem.org_id is not null");
            return (Criteria) this;
        }

        public Criteria andOrgIdEqualTo(Integer value) {
            addCriterion("vproblem.org_id =", value, "orgId");
            return (Criteria) this;
        }

        public Criteria andOrgIdNotEqualTo(Integer value) {
            addCriterion("vproblem.org_id <>", value, "orgId");
            return (Criteria) this;
        }

        public Criteria andOrgIdGreaterThan(Integer value) {
            addCriterion("vproblem.org_id >", value, "orgId");
            return (Criteria) this;
        }

        public Criteria andOrgIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("vproblem.org_id >=", value, "orgId");
            return (Criteria) this;
        }

        public Criteria andOrgIdLessThan(Integer value) {
            addCriterion("vproblem.org_id <", value, "orgId");
            return (Criteria) this;
        }

        public Criteria andOrgIdLessThanOrEqualTo(Integer value) {
            addCriterion("vproblem.org_id <=", value, "orgId");
            return (Criteria) this;
        }

        public Criteria andOrgIdIn(List<Integer> values) {
            addCriterion("vproblem.org_id in", values, "orgId");
            return (Criteria) this;
        }

        public Criteria andOrgIdNotIn(List<Integer> values) {
            addCriterion("vproblem.org_id not in", values, "orgId");
            return (Criteria) this;
        }

        public Criteria andOrgIdBetween(Integer value1, Integer value2) {
            addCriterion("vproblem.org_id between", value1, value2, "orgId");
            return (Criteria) this;
        }

        public Criteria andOrgIdNotBetween(Integer value1, Integer value2) {
            addCriterion("vproblem.org_id not between", value1, value2, "orgId");
            return (Criteria) this;
        }

        public Criteria andBusinessModelIdIsNull() {
            addCriterion("vproblem.business_model_id is null");
            return (Criteria) this;
        }

        public Criteria andBusinessModelIdIsNotNull() {
            addCriterion("vproblem.business_model_id is not null");
            return (Criteria) this;
        }

        public Criteria andBusinessModelIdEqualTo(Integer value) {
            addCriterion("vproblem.business_model_id =", value, "businessModelId");
            return (Criteria) this;
        }

        public Criteria andBusinessModelIdNotEqualTo(Integer value) {
            addCriterion("vproblem.business_model_id <>", value, "businessModelId");
            return (Criteria) this;
        }

        public Criteria andBusinessModelIdGreaterThan(Integer value) {
            addCriterion("vproblem.business_model_id >", value, "businessModelId");
            return (Criteria) this;
        }

        public Criteria andBusinessModelIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("vproblem.business_model_id >=", value, "businessModelId");
            return (Criteria) this;
        }

        public Criteria andBusinessModelIdLessThan(Integer value) {
            addCriterion("vproblem.business_model_id <", value, "businessModelId");
            return (Criteria) this;
        }

        public Criteria andBusinessModelIdLessThanOrEqualTo(Integer value) {
            addCriterion("vproblem.business_model_id <=", value, "businessModelId");
            return (Criteria) this;
        }

        public Criteria andBusinessModelIdIn(List<Integer> values) {
            addCriterion("vproblem.business_model_id in", values, "businessModelId");
            return (Criteria) this;
        }

        public Criteria andBusinessModelIdNotIn(List<Integer> values) {
            addCriterion("vproblem.business_model_id not in", values, "businessModelId");
            return (Criteria) this;
        }

        public Criteria andBusinessModelIdBetween(Integer value1, Integer value2) {
            addCriterion("vproblem.business_model_id between", value1, value2, "businessModelId");
            return (Criteria) this;
        }

        public Criteria andBusinessModelIdNotBetween(Integer value1, Integer value2) {
            addCriterion("vproblem.business_model_id not between", value1, value2, "businessModelId");
            return (Criteria) this;
        }

        public Criteria andNameIsNull() {
            addCriterion("vproblem.name is null");
            return (Criteria) this;
        }

        public Criteria andNameIsNotNull() {
            addCriterion("vproblem.name is not null");
            return (Criteria) this;
        }

        public Criteria andNameEqualTo(String value) {
            addCriterion("vproblem.name =", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameNotEqualTo(String value) {
            addCriterion("vproblem.name <>", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameGreaterThan(String value) {
            addCriterion("vproblem.name >", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameGreaterThanOrEqualTo(String value) {
            addCriterion("vproblem.name >=", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameLessThan(String value) {
            addCriterion("vproblem.name <", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameLessThanOrEqualTo(String value) {
            addCriterion("vproblem.name <=", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameLike(String value) {
            addCriterion("vproblem.name like", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameNotLike(String value) {
            addCriterion("vproblem.name not like", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameIn(List<String> values) {
            addCriterion("vproblem.name in", values, "name");
            return (Criteria) this;
        }

        public Criteria andNameNotIn(List<String> values) {
            addCriterion("vproblem.name not in", values, "name");
            return (Criteria) this;
        }

        public Criteria andNameBetween(String value1, String value2) {
            addCriterion("vproblem.name between", value1, value2, "name");
            return (Criteria) this;
        }

        public Criteria andNameNotBetween(String value1, String value2) {
            addCriterion("vproblem.name not between", value1, value2, "name");
            return (Criteria) this;
        }

        public Criteria andIntroIsNull() {
            addCriterion("vproblem.intro is null");
            return (Criteria) this;
        }

        public Criteria andIntroIsNotNull() {
            addCriterion("vproblem.intro is not null");
            return (Criteria) this;
        }

        public Criteria andIntroEqualTo(String value) {
            addCriterion("vproblem.intro =", value, "intro");
            return (Criteria) this;
        }

        public Criteria andIntroNotEqualTo(String value) {
            addCriterion("vproblem.intro <>", value, "intro");
            return (Criteria) this;
        }

        public Criteria andIntroGreaterThan(String value) {
            addCriterion("vproblem.intro >", value, "intro");
            return (Criteria) this;
        }

        public Criteria andIntroGreaterThanOrEqualTo(String value) {
            addCriterion("vproblem.intro >=", value, "intro");
            return (Criteria) this;
        }

        public Criteria andIntroLessThan(String value) {
            addCriterion("vproblem.intro <", value, "intro");
            return (Criteria) this;
        }

        public Criteria andIntroLessThanOrEqualTo(String value) {
            addCriterion("vproblem.intro <=", value, "intro");
            return (Criteria) this;
        }

        public Criteria andIntroLike(String value) {
            addCriterion("vproblem.intro like", value, "intro");
            return (Criteria) this;
        }

        public Criteria andIntroNotLike(String value) {
            addCriterion("vproblem.intro not like", value, "intro");
            return (Criteria) this;
        }

        public Criteria andIntroIn(List<String> values) {
            addCriterion("vproblem.intro in", values, "intro");
            return (Criteria) this;
        }

        public Criteria andIntroNotIn(List<String> values) {
            addCriterion("vproblem.intro not in", values, "intro");
            return (Criteria) this;
        }

        public Criteria andIntroBetween(String value1, String value2) {
            addCriterion("vproblem.intro between", value1, value2, "intro");
            return (Criteria) this;
        }

        public Criteria andIntroNotBetween(String value1, String value2) {
            addCriterion("vproblem.intro not between", value1, value2, "intro");
            return (Criteria) this;
        }

        public Criteria andTypeIsNull() {
            addCriterion("vproblem.type is null");
            return (Criteria) this;
        }

        public Criteria andTypeIsNotNull() {
            addCriterion("vproblem.type is not null");
            return (Criteria) this;
        }

        public Criteria andTypeEqualTo(Integer value) {
            addCriterion("vproblem.type =", value, "type");
            return (Criteria) this;
        }

        public Criteria andTypeNotEqualTo(Integer value) {
            addCriterion("vproblem.type <>", value, "type");
            return (Criteria) this;
        }

        public Criteria andTypeGreaterThan(Integer value) {
            addCriterion("vproblem.type >", value, "type");
            return (Criteria) this;
        }

        public Criteria andTypeGreaterThanOrEqualTo(Integer value) {
            addCriterion("vproblem.type >=", value, "type");
            return (Criteria) this;
        }

        public Criteria andTypeLessThan(Integer value) {
            addCriterion("vproblem.type <", value, "type");
            return (Criteria) this;
        }

        public Criteria andTypeLessThanOrEqualTo(Integer value) {
            addCriterion("vproblem.type <=", value, "type");
            return (Criteria) this;
        }

        public Criteria andTypeIn(List<Integer> values) {
            addCriterion("vproblem.type in", values, "type");
            return (Criteria) this;
        }

        public Criteria andTypeNotIn(List<Integer> values) {
            addCriterion("vproblem.type not in", values, "type");
            return (Criteria) this;
        }

        public Criteria andTypeBetween(Integer value1, Integer value2) {
            addCriterion("vproblem.type between", value1, value2, "type");
            return (Criteria) this;
        }

        public Criteria andTypeNotBetween(Integer value1, Integer value2) {
            addCriterion("vproblem.type not between", value1, value2, "type");
            return (Criteria) this;
        }

        public Criteria andQuestionIsNull() {
            addCriterion("vproblem.question is null");
            return (Criteria) this;
        }

        public Criteria andQuestionIsNotNull() {
            addCriterion("vproblem.question is not null");
            return (Criteria) this;
        }

        public Criteria andQuestionEqualTo(String value) {
            addCriterion("vproblem.question =", value, "question");
            return (Criteria) this;
        }

        public Criteria andQuestionNotEqualTo(String value) {
            addCriterion("vproblem.question <>", value, "question");
            return (Criteria) this;
        }

        public Criteria andQuestionGreaterThan(String value) {
            addCriterion("vproblem.question >", value, "question");
            return (Criteria) this;
        }

        public Criteria andQuestionGreaterThanOrEqualTo(String value) {
            addCriterion("vproblem.question >=", value, "question");
            return (Criteria) this;
        }

        public Criteria andQuestionLessThan(String value) {
            addCriterion("vproblem.question <", value, "question");
            return (Criteria) this;
        }

        public Criteria andQuestionLessThanOrEqualTo(String value) {
            addCriterion("vproblem.question <=", value, "question");
            return (Criteria) this;
        }

        public Criteria andQuestionLike(String value) {
            addCriterion("vproblem.question like", value, "question");
            return (Criteria) this;
        }

        public Criteria andQuestionNotLike(String value) {
            addCriterion("vproblem.question not like", value, "question");
            return (Criteria) this;
        }

        public Criteria andQuestionIn(List<String> values) {
            addCriterion("vproblem.question in", values, "question");
            return (Criteria) this;
        }

        public Criteria andQuestionNotIn(List<String> values) {
            addCriterion("vproblem.question not in", values, "question");
            return (Criteria) this;
        }

        public Criteria andQuestionBetween(String value1, String value2) {
            addCriterion("vproblem.question between", value1, value2, "question");
            return (Criteria) this;
        }

        public Criteria andQuestionNotBetween(String value1, String value2) {
            addCriterion("vproblem.question not between", value1, value2, "question");
            return (Criteria) this;
        }

        public Criteria andOptionAIsNull() {
            addCriterion("vproblem.option_a is null");
            return (Criteria) this;
        }

        public Criteria andOptionAIsNotNull() {
            addCriterion("vproblem.option_a is not null");
            return (Criteria) this;
        }

        public Criteria andOptionAEqualTo(String value) {
            addCriterion("vproblem.option_a =", value, "optionA");
            return (Criteria) this;
        }

        public Criteria andOptionANotEqualTo(String value) {
            addCriterion("vproblem.option_a <>", value, "optionA");
            return (Criteria) this;
        }

        public Criteria andOptionAGreaterThan(String value) {
            addCriterion("vproblem.option_a >", value, "optionA");
            return (Criteria) this;
        }

        public Criteria andOptionAGreaterThanOrEqualTo(String value) {
            addCriterion("vproblem.option_a >=", value, "optionA");
            return (Criteria) this;
        }

        public Criteria andOptionALessThan(String value) {
            addCriterion("vproblem.option_a <", value, "optionA");
            return (Criteria) this;
        }

        public Criteria andOptionALessThanOrEqualTo(String value) {
            addCriterion("vproblem.option_a <=", value, "optionA");
            return (Criteria) this;
        }

        public Criteria andOptionALike(String value) {
            addCriterion("vproblem.option_a like", value, "optionA");
            return (Criteria) this;
        }

        public Criteria andOptionANotLike(String value) {
            addCriterion("vproblem.option_a not like", value, "optionA");
            return (Criteria) this;
        }

        public Criteria andOptionAIn(List<String> values) {
            addCriterion("vproblem.option_a in", values, "optionA");
            return (Criteria) this;
        }

        public Criteria andOptionANotIn(List<String> values) {
            addCriterion("vproblem.option_a not in", values, "optionA");
            return (Criteria) this;
        }

        public Criteria andOptionABetween(String value1, String value2) {
            addCriterion("vproblem.option_a between", value1, value2, "optionA");
            return (Criteria) this;
        }

        public Criteria andOptionANotBetween(String value1, String value2) {
            addCriterion("vproblem.option_a not between", value1, value2, "optionA");
            return (Criteria) this;
        }

        public Criteria andOptionBIsNull() {
            addCriterion("vproblem.option_b is null");
            return (Criteria) this;
        }

        public Criteria andOptionBIsNotNull() {
            addCriterion("vproblem.option_b is not null");
            return (Criteria) this;
        }

        public Criteria andOptionBEqualTo(String value) {
            addCriterion("vproblem.option_b =", value, "optionB");
            return (Criteria) this;
        }

        public Criteria andOptionBNotEqualTo(String value) {
            addCriterion("vproblem.option_b <>", value, "optionB");
            return (Criteria) this;
        }

        public Criteria andOptionBGreaterThan(String value) {
            addCriterion("vproblem.option_b >", value, "optionB");
            return (Criteria) this;
        }

        public Criteria andOptionBGreaterThanOrEqualTo(String value) {
            addCriterion("vproblem.option_b >=", value, "optionB");
            return (Criteria) this;
        }

        public Criteria andOptionBLessThan(String value) {
            addCriterion("vproblem.option_b <", value, "optionB");
            return (Criteria) this;
        }

        public Criteria andOptionBLessThanOrEqualTo(String value) {
            addCriterion("vproblem.option_b <=", value, "optionB");
            return (Criteria) this;
        }

        public Criteria andOptionBLike(String value) {
            addCriterion("vproblem.option_b like", value, "optionB");
            return (Criteria) this;
        }

        public Criteria andOptionBNotLike(String value) {
            addCriterion("vproblem.option_b not like", value, "optionB");
            return (Criteria) this;
        }

        public Criteria andOptionBIn(List<String> values) {
            addCriterion("vproblem.option_b in", values, "optionB");
            return (Criteria) this;
        }

        public Criteria andOptionBNotIn(List<String> values) {
            addCriterion("vproblem.option_b not in", values, "optionB");
            return (Criteria) this;
        }

        public Criteria andOptionBBetween(String value1, String value2) {
            addCriterion("vproblem.option_b between", value1, value2, "optionB");
            return (Criteria) this;
        }

        public Criteria andOptionBNotBetween(String value1, String value2) {
            addCriterion("vproblem.option_b not between", value1, value2, "optionB");
            return (Criteria) this;
        }

        public Criteria andOptionCIsNull() {
            addCriterion("vproblem.option_c is null");
            return (Criteria) this;
        }

        public Criteria andOptionCIsNotNull() {
            addCriterion("vproblem.option_c is not null");
            return (Criteria) this;
        }

        public Criteria andOptionCEqualTo(String value) {
            addCriterion("vproblem.option_c =", value, "optionC");
            return (Criteria) this;
        }

        public Criteria andOptionCNotEqualTo(String value) {
            addCriterion("vproblem.option_c <>", value, "optionC");
            return (Criteria) this;
        }

        public Criteria andOptionCGreaterThan(String value) {
            addCriterion("vproblem.option_c >", value, "optionC");
            return (Criteria) this;
        }

        public Criteria andOptionCGreaterThanOrEqualTo(String value) {
            addCriterion("vproblem.option_c >=", value, "optionC");
            return (Criteria) this;
        }

        public Criteria andOptionCLessThan(String value) {
            addCriterion("vproblem.option_c <", value, "optionC");
            return (Criteria) this;
        }

        public Criteria andOptionCLessThanOrEqualTo(String value) {
            addCriterion("vproblem.option_c <=", value, "optionC");
            return (Criteria) this;
        }

        public Criteria andOptionCLike(String value) {
            addCriterion("vproblem.option_c like", value, "optionC");
            return (Criteria) this;
        }

        public Criteria andOptionCNotLike(String value) {
            addCriterion("vproblem.option_c not like", value, "optionC");
            return (Criteria) this;
        }

        public Criteria andOptionCIn(List<String> values) {
            addCriterion("vproblem.option_c in", values, "optionC");
            return (Criteria) this;
        }

        public Criteria andOptionCNotIn(List<String> values) {
            addCriterion("vproblem.option_c not in", values, "optionC");
            return (Criteria) this;
        }

        public Criteria andOptionCBetween(String value1, String value2) {
            addCriterion("vproblem.option_c between", value1, value2, "optionC");
            return (Criteria) this;
        }

        public Criteria andOptionCNotBetween(String value1, String value2) {
            addCriterion("vproblem.option_c not between", value1, value2, "optionC");
            return (Criteria) this;
        }

        public Criteria andOptionDIsNull() {
            addCriterion("vproblem.option_d is null");
            return (Criteria) this;
        }

        public Criteria andOptionDIsNotNull() {
            addCriterion("vproblem.option_d is not null");
            return (Criteria) this;
        }

        public Criteria andOptionDEqualTo(String value) {
            addCriterion("vproblem.option_d =", value, "optionD");
            return (Criteria) this;
        }

        public Criteria andOptionDNotEqualTo(String value) {
            addCriterion("vproblem.option_d <>", value, "optionD");
            return (Criteria) this;
        }

        public Criteria andOptionDGreaterThan(String value) {
            addCriterion("vproblem.option_d >", value, "optionD");
            return (Criteria) this;
        }

        public Criteria andOptionDGreaterThanOrEqualTo(String value) {
            addCriterion("vproblem.option_d >=", value, "optionD");
            return (Criteria) this;
        }

        public Criteria andOptionDLessThan(String value) {
            addCriterion("vproblem.option_d <", value, "optionD");
            return (Criteria) this;
        }

        public Criteria andOptionDLessThanOrEqualTo(String value) {
            addCriterion("vproblem.option_d <=", value, "optionD");
            return (Criteria) this;
        }

        public Criteria andOptionDLike(String value) {
            addCriterion("vproblem.option_d like", value, "optionD");
            return (Criteria) this;
        }

        public Criteria andOptionDNotLike(String value) {
            addCriterion("vproblem.option_d not like", value, "optionD");
            return (Criteria) this;
        }

        public Criteria andOptionDIn(List<String> values) {
            addCriterion("vproblem.option_d in", values, "optionD");
            return (Criteria) this;
        }

        public Criteria andOptionDNotIn(List<String> values) {
            addCriterion("vproblem.option_d not in", values, "optionD");
            return (Criteria) this;
        }

        public Criteria andOptionDBetween(String value1, String value2) {
            addCriterion("vproblem.option_d between", value1, value2, "optionD");
            return (Criteria) this;
        }

        public Criteria andOptionDNotBetween(String value1, String value2) {
            addCriterion("vproblem.option_d not between", value1, value2, "optionD");
            return (Criteria) this;
        }

        public Criteria andOptionEIsNull() {
            addCriterion("vproblem.option_e is null");
            return (Criteria) this;
        }

        public Criteria andOptionEIsNotNull() {
            addCriterion("vproblem.option_e is not null");
            return (Criteria) this;
        }

        public Criteria andOptionEEqualTo(String value) {
            addCriterion("vproblem.option_e =", value, "optionE");
            return (Criteria) this;
        }

        public Criteria andOptionENotEqualTo(String value) {
            addCriterion("vproblem.option_e <>", value, "optionE");
            return (Criteria) this;
        }

        public Criteria andOptionEGreaterThan(String value) {
            addCriterion("vproblem.option_e >", value, "optionE");
            return (Criteria) this;
        }

        public Criteria andOptionEGreaterThanOrEqualTo(String value) {
            addCriterion("vproblem.option_e >=", value, "optionE");
            return (Criteria) this;
        }

        public Criteria andOptionELessThan(String value) {
            addCriterion("vproblem.option_e <", value, "optionE");
            return (Criteria) this;
        }

        public Criteria andOptionELessThanOrEqualTo(String value) {
            addCriterion("vproblem.option_e <=", value, "optionE");
            return (Criteria) this;
        }

        public Criteria andOptionELike(String value) {
            addCriterion("vproblem.option_e like", value, "optionE");
            return (Criteria) this;
        }

        public Criteria andOptionENotLike(String value) {
            addCriterion("vproblem.option_e not like", value, "optionE");
            return (Criteria) this;
        }

        public Criteria andOptionEIn(List<String> values) {
            addCriterion("vproblem.option_e in", values, "optionE");
            return (Criteria) this;
        }

        public Criteria andOptionENotIn(List<String> values) {
            addCriterion("vproblem.option_e not in", values, "optionE");
            return (Criteria) this;
        }

        public Criteria andOptionEBetween(String value1, String value2) {
            addCriterion("vproblem.option_e between", value1, value2, "optionE");
            return (Criteria) this;
        }

        public Criteria andOptionENotBetween(String value1, String value2) {
            addCriterion("vproblem.option_e not between", value1, value2, "optionE");
            return (Criteria) this;
        }

        public Criteria andOptionFIsNull() {
            addCriterion("vproblem.option_f is null");
            return (Criteria) this;
        }

        public Criteria andOptionFIsNotNull() {
            addCriterion("vproblem.option_f is not null");
            return (Criteria) this;
        }

        public Criteria andOptionFEqualTo(String value) {
            addCriterion("vproblem.option_f =", value, "optionF");
            return (Criteria) this;
        }

        public Criteria andOptionFNotEqualTo(String value) {
            addCriterion("vproblem.option_f <>", value, "optionF");
            return (Criteria) this;
        }

        public Criteria andOptionFGreaterThan(String value) {
            addCriterion("vproblem.option_f >", value, "optionF");
            return (Criteria) this;
        }

        public Criteria andOptionFGreaterThanOrEqualTo(String value) {
            addCriterion("vproblem.option_f >=", value, "optionF");
            return (Criteria) this;
        }

        public Criteria andOptionFLessThan(String value) {
            addCriterion("vproblem.option_f <", value, "optionF");
            return (Criteria) this;
        }

        public Criteria andOptionFLessThanOrEqualTo(String value) {
            addCriterion("vproblem.option_f <=", value, "optionF");
            return (Criteria) this;
        }

        public Criteria andOptionFLike(String value) {
            addCriterion("vproblem.option_f like", value, "optionF");
            return (Criteria) this;
        }

        public Criteria andOptionFNotLike(String value) {
            addCriterion("vproblem.option_f not like", value, "optionF");
            return (Criteria) this;
        }

        public Criteria andOptionFIn(List<String> values) {
            addCriterion("vproblem.option_f in", values, "optionF");
            return (Criteria) this;
        }

        public Criteria andOptionFNotIn(List<String> values) {
            addCriterion("vproblem.option_f not in", values, "optionF");
            return (Criteria) this;
        }

        public Criteria andOptionFBetween(String value1, String value2) {
            addCriterion("vproblem.option_f between", value1, value2, "optionF");
            return (Criteria) this;
        }

        public Criteria andOptionFNotBetween(String value1, String value2) {
            addCriterion("vproblem.option_f not between", value1, value2, "optionF");
            return (Criteria) this;
        }

        public Criteria andOptionGIsNull() {
            addCriterion("vproblem.option_g is null");
            return (Criteria) this;
        }

        public Criteria andOptionGIsNotNull() {
            addCriterion("vproblem.option_g is not null");
            return (Criteria) this;
        }

        public Criteria andOptionGEqualTo(String value) {
            addCriterion("vproblem.option_g =", value, "optionG");
            return (Criteria) this;
        }

        public Criteria andOptionGNotEqualTo(String value) {
            addCriterion("vproblem.option_g <>", value, "optionG");
            return (Criteria) this;
        }

        public Criteria andOptionGGreaterThan(String value) {
            addCriterion("vproblem.option_g >", value, "optionG");
            return (Criteria) this;
        }

        public Criteria andOptionGGreaterThanOrEqualTo(String value) {
            addCriterion("vproblem.option_g >=", value, "optionG");
            return (Criteria) this;
        }

        public Criteria andOptionGLessThan(String value) {
            addCriterion("vproblem.option_g <", value, "optionG");
            return (Criteria) this;
        }

        public Criteria andOptionGLessThanOrEqualTo(String value) {
            addCriterion("vproblem.option_g <=", value, "optionG");
            return (Criteria) this;
        }

        public Criteria andOptionGLike(String value) {
            addCriterion("vproblem.option_g like", value, "optionG");
            return (Criteria) this;
        }

        public Criteria andOptionGNotLike(String value) {
            addCriterion("vproblem.option_g not like", value, "optionG");
            return (Criteria) this;
        }

        public Criteria andOptionGIn(List<String> values) {
            addCriterion("vproblem.option_g in", values, "optionG");
            return (Criteria) this;
        }

        public Criteria andOptionGNotIn(List<String> values) {
            addCriterion("vproblem.option_g not in", values, "optionG");
            return (Criteria) this;
        }

        public Criteria andOptionGBetween(String value1, String value2) {
            addCriterion("vproblem.option_g between", value1, value2, "optionG");
            return (Criteria) this;
        }

        public Criteria andOptionGNotBetween(String value1, String value2) {
            addCriterion("vproblem.option_g not between", value1, value2, "optionG");
            return (Criteria) this;
        }

        public Criteria andCorrectAnswerIsNull() {
            addCriterion("vproblem.correct_answer is null");
            return (Criteria) this;
        }

        public Criteria andCorrectAnswerIsNotNull() {
            addCriterion("vproblem.correct_answer is not null");
            return (Criteria) this;
        }

        public Criteria andCorrectAnswerEqualTo(String value) {
            addCriterion("vproblem.correct_answer =", value, "correctAnswer");
            return (Criteria) this;
        }

        public Criteria andCorrectAnswerNotEqualTo(String value) {
            addCriterion("vproblem.correct_answer <>", value, "correctAnswer");
            return (Criteria) this;
        }

        public Criteria andCorrectAnswerGreaterThan(String value) {
            addCriterion("vproblem.correct_answer >", value, "correctAnswer");
            return (Criteria) this;
        }

        public Criteria andCorrectAnswerGreaterThanOrEqualTo(String value) {
            addCriterion("vproblem.correct_answer >=", value, "correctAnswer");
            return (Criteria) this;
        }

        public Criteria andCorrectAnswerLessThan(String value) {
            addCriterion("vproblem.correct_answer <", value, "correctAnswer");
            return (Criteria) this;
        }

        public Criteria andCorrectAnswerLessThanOrEqualTo(String value) {
            addCriterion("vproblem.correct_answer <=", value, "correctAnswer");
            return (Criteria) this;
        }

        public Criteria andCorrectAnswerLike(String value) {
            addCriterion("vproblem.correct_answer like", value, "correctAnswer");
            return (Criteria) this;
        }

        public Criteria andCorrectAnswerNotLike(String value) {
            addCriterion("vproblem.correct_answer not like", value, "correctAnswer");
            return (Criteria) this;
        }

        public Criteria andCorrectAnswerIn(List<String> values) {
            addCriterion("vproblem.correct_answer in", values, "correctAnswer");
            return (Criteria) this;
        }

        public Criteria andCorrectAnswerNotIn(List<String> values) {
            addCriterion("vproblem.correct_answer not in", values, "correctAnswer");
            return (Criteria) this;
        }

        public Criteria andCorrectAnswerBetween(String value1, String value2) {
            addCriterion("vproblem.correct_answer between", value1, value2, "correctAnswer");
            return (Criteria) this;
        }

        public Criteria andCorrectAnswerNotBetween(String value1, String value2) {
            addCriterion("vproblem.correct_answer not between", value1, value2, "correctAnswer");
            return (Criteria) this;
        }

        public Criteria andScoreIsNull() {
            addCriterion("vproblem.score is null");
            return (Criteria) this;
        }

        public Criteria andScoreIsNotNull() {
            addCriterion("vproblem.score is not null");
            return (Criteria) this;
        }

        public Criteria andScoreEqualTo(Integer value) {
            addCriterion("vproblem.score =", value, "score");
            return (Criteria) this;
        }

        public Criteria andScoreNotEqualTo(Integer value) {
            addCriterion("vproblem.score <>", value, "score");
            return (Criteria) this;
        }

        public Criteria andScoreGreaterThan(Integer value) {
            addCriterion("vproblem.score >", value, "score");
            return (Criteria) this;
        }

        public Criteria andScoreGreaterThanOrEqualTo(Integer value) {
            addCriterion("vproblem.score >=", value, "score");
            return (Criteria) this;
        }

        public Criteria andScoreLessThan(Integer value) {
            addCriterion("vproblem.score <", value, "score");
            return (Criteria) this;
        }

        public Criteria andScoreLessThanOrEqualTo(Integer value) {
            addCriterion("vproblem.score <=", value, "score");
            return (Criteria) this;
        }

        public Criteria andScoreIn(List<Integer> values) {
            addCriterion("vproblem.score in", values, "score");
            return (Criteria) this;
        }

        public Criteria andScoreNotIn(List<Integer> values) {
            addCriterion("vproblem.score not in", values, "score");
            return (Criteria) this;
        }

        public Criteria andScoreBetween(Integer value1, Integer value2) {
            addCriterion("vproblem.score between", value1, value2, "score");
            return (Criteria) this;
        }

        public Criteria andScoreNotBetween(Integer value1, Integer value2) {
            addCriterion("vproblem.score not between", value1, value2, "score");
            return (Criteria) this;
        }

        public Criteria andRoughTimeIsNull() {
            addCriterion("vproblem.rough_time is null");
            return (Criteria) this;
        }

        public Criteria andRoughTimeIsNotNull() {
            addCriterion("vproblem.rough_time is not null");
            return (Criteria) this;
        }

        public Criteria andRoughTimeEqualTo(Integer value) {
            addCriterion("vproblem.rough_time =", value, "roughTime");
            return (Criteria) this;
        }

        public Criteria andRoughTimeNotEqualTo(Integer value) {
            addCriterion("vproblem.rough_time <>", value, "roughTime");
            return (Criteria) this;
        }

        public Criteria andRoughTimeGreaterThan(Integer value) {
            addCriterion("vproblem.rough_time >", value, "roughTime");
            return (Criteria) this;
        }

        public Criteria andRoughTimeGreaterThanOrEqualTo(Integer value) {
            addCriterion("vproblem.rough_time >=", value, "roughTime");
            return (Criteria) this;
        }

        public Criteria andRoughTimeLessThan(Integer value) {
            addCriterion("vproblem.rough_time <", value, "roughTime");
            return (Criteria) this;
        }

        public Criteria andRoughTimeLessThanOrEqualTo(Integer value) {
            addCriterion("vproblem.rough_time <=", value, "roughTime");
            return (Criteria) this;
        }

        public Criteria andRoughTimeIn(List<Integer> values) {
            addCriterion("vproblem.rough_time in", values, "roughTime");
            return (Criteria) this;
        }

        public Criteria andRoughTimeNotIn(List<Integer> values) {
            addCriterion("vproblem.rough_time not in", values, "roughTime");
            return (Criteria) this;
        }

        public Criteria andRoughTimeBetween(Integer value1, Integer value2) {
            addCriterion("vproblem.rough_time between", value1, value2, "roughTime");
            return (Criteria) this;
        }

        public Criteria andRoughTimeNotBetween(Integer value1, Integer value2) {
            addCriterion("vproblem.rough_time not between", value1, value2, "roughTime");
            return (Criteria) this;
        }

        public Criteria andCourseStageIsNull() {
            addCriterion("vproblem.course_stage is null");
            return (Criteria) this;
        }

        public Criteria andCourseStageIsNotNull() {
            addCriterion("vproblem.course_stage is not null");
            return (Criteria) this;
        }

        public Criteria andCourseStageEqualTo(Integer value) {
            addCriterion("vproblem.course_stage =", value, "courseStage");
            return (Criteria) this;
        }

        public Criteria andCourseStageNotEqualTo(Integer value) {
            addCriterion("vproblem.course_stage <>", value, "courseStage");
            return (Criteria) this;
        }

        public Criteria andCourseStageGreaterThan(Integer value) {
            addCriterion("vproblem.course_stage >", value, "courseStage");
            return (Criteria) this;
        }

        public Criteria andCourseStageGreaterThanOrEqualTo(Integer value) {
            addCriterion("vproblem.course_stage >=", value, "courseStage");
            return (Criteria) this;
        }

        public Criteria andCourseStageLessThan(Integer value) {
            addCriterion("vproblem.course_stage <", value, "courseStage");
            return (Criteria) this;
        }

        public Criteria andCourseStageLessThanOrEqualTo(Integer value) {
            addCriterion("vproblem.course_stage <=", value, "courseStage");
            return (Criteria) this;
        }

        public Criteria andCourseStageIn(List<Integer> values) {
            addCriterion("vproblem.course_stage in", values, "courseStage");
            return (Criteria) this;
        }

        public Criteria andCourseStageNotIn(List<Integer> values) {
            addCriterion("vproblem.course_stage not in", values, "courseStage");
            return (Criteria) this;
        }

        public Criteria andCourseStageBetween(Integer value1, Integer value2) {
            addCriterion("vproblem.course_stage between", value1, value2, "courseStage");
            return (Criteria) this;
        }

        public Criteria andCourseStageNotBetween(Integer value1, Integer value2) {
            addCriterion("vproblem.course_stage not between", value1, value2, "courseStage");
            return (Criteria) this;
        }

        public Criteria andReferenceCountIsNull() {
            addCriterion("vproblem.reference_count is null");
            return (Criteria) this;
        }

        public Criteria andReferenceCountIsNotNull() {
            addCriterion("vproblem.reference_count is not null");
            return (Criteria) this;
        }

        public Criteria andReferenceCountEqualTo(Integer value) {
            addCriterion("vproblem.reference_count =", value, "referenceCount");
            return (Criteria) this;
        }

        public Criteria andReferenceCountNotEqualTo(Integer value) {
            addCriterion("vproblem.reference_count <>", value, "referenceCount");
            return (Criteria) this;
        }

        public Criteria andReferenceCountGreaterThan(Integer value) {
            addCriterion("vproblem.reference_count >", value, "referenceCount");
            return (Criteria) this;
        }

        public Criteria andReferenceCountGreaterThanOrEqualTo(Integer value) {
            addCriterion("vproblem.reference_count >=", value, "referenceCount");
            return (Criteria) this;
        }

        public Criteria andReferenceCountLessThan(Integer value) {
            addCriterion("vproblem.reference_count <", value, "referenceCount");
            return (Criteria) this;
        }

        public Criteria andReferenceCountLessThanOrEqualTo(Integer value) {
            addCriterion("vproblem.reference_count <=", value, "referenceCount");
            return (Criteria) this;
        }

        public Criteria andReferenceCountIn(List<Integer> values) {
            addCriterion("vproblem.reference_count in", values, "referenceCount");
            return (Criteria) this;
        }

        public Criteria andReferenceCountNotIn(List<Integer> values) {
            addCriterion("vproblem.reference_count not in", values, "referenceCount");
            return (Criteria) this;
        }

        public Criteria andReferenceCountBetween(Integer value1, Integer value2) {
            addCriterion("vproblem.reference_count between", value1, value2, "referenceCount");
            return (Criteria) this;
        }

        public Criteria andReferenceCountNotBetween(Integer value1, Integer value2) {
            addCriterion("vproblem.reference_count not between", value1, value2, "referenceCount");
            return (Criteria) this;
        }

        public Criteria andIsSharedIsNull() {
            addCriterion("vproblem.is_shared is null");
            return (Criteria) this;
        }

        public Criteria andIsSharedIsNotNull() {
            addCriterion("vproblem.is_shared is not null");
            return (Criteria) this;
        }

        public Criteria andIsSharedEqualTo(Boolean value) {
            addCriterion("vproblem.is_shared =", value, "isShared");
            return (Criteria) this;
        }

        public Criteria andIsSharedNotEqualTo(Boolean value) {
            addCriterion("vproblem.is_shared <>", value, "isShared");
            return (Criteria) this;
        }

        public Criteria andIsSharedGreaterThan(Boolean value) {
            addCriterion("vproblem.is_shared >", value, "isShared");
            return (Criteria) this;
        }

        public Criteria andIsSharedGreaterThanOrEqualTo(Boolean value) {
            addCriterion("vproblem.is_shared >=", value, "isShared");
            return (Criteria) this;
        }

        public Criteria andIsSharedLessThan(Boolean value) {
            addCriterion("vproblem.is_shared <", value, "isShared");
            return (Criteria) this;
        }

        public Criteria andIsSharedLessThanOrEqualTo(Boolean value) {
            addCriterion("vproblem.is_shared <=", value, "isShared");
            return (Criteria) this;
        }

        public Criteria andIsSharedIn(List<Boolean> values) {
            addCriterion("vproblem.is_shared in", values, "isShared");
            return (Criteria) this;
        }

        public Criteria andIsSharedNotIn(List<Boolean> values) {
            addCriterion("vproblem.is_shared not in", values, "isShared");
            return (Criteria) this;
        }

        public Criteria andIsSharedBetween(Boolean value1, Boolean value2) {
            addCriterion("vproblem.is_shared between", value1, value2, "isShared");
            return (Criteria) this;
        }

        public Criteria andIsSharedNotBetween(Boolean value1, Boolean value2) {
            addCriterion("vproblem.is_shared not between", value1, value2, "isShared");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIsNull() {
            addCriterion("vproblem.create_time is null");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIsNotNull() {
            addCriterion("vproblem.create_time is not null");
            return (Criteria) this;
        }

        public Criteria andCreateTimeEqualTo(Date value) {
            addCriterion("vproblem.create_time =", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotEqualTo(Date value) {
            addCriterion("vproblem.create_time <>", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThan(Date value) {
            addCriterion("vproblem.create_time >", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("vproblem.create_time >=", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThan(Date value) {
            addCriterion("vproblem.create_time <", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThanOrEqualTo(Date value) {
            addCriterion("vproblem.create_time <=", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIn(List<Date> values) {
            addCriterion("vproblem.create_time in", values, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotIn(List<Date> values) {
            addCriterion("vproblem.create_time not in", values, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeBetween(Date value1, Date value2) {
            addCriterion("vproblem.create_time between", value1, value2, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotBetween(Date value1, Date value2) {
            addCriterion("vproblem.create_time not between", value1, value2, "createTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIsNull() {
            addCriterion("vproblem.update_time is null");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIsNotNull() {
            addCriterion("vproblem.update_time is not null");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeEqualTo(Date value) {
            addCriterion("vproblem.update_time =", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotEqualTo(Date value) {
            addCriterion("vproblem.update_time <>", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeGreaterThan(Date value) {
            addCriterion("vproblem.update_time >", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("vproblem.update_time >=", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeLessThan(Date value) {
            addCriterion("vproblem.update_time <", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeLessThanOrEqualTo(Date value) {
            addCriterion("vproblem.update_time <=", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIn(List<Date> values) {
            addCriterion("vproblem.update_time in", values, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotIn(List<Date> values) {
            addCriterion("vproblem.update_time not in", values, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeBetween(Date value1, Date value2) {
            addCriterion("vproblem.update_time between", value1, value2, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotBetween(Date value1, Date value2) {
            addCriterion("vproblem.update_time not between", value1, value2, "updateTime");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}